home *** CD-ROM | disk | FTP | other *** search
- /* $Revision Header *** Header built automatically - do not edit! ***********
- *
- * (C) Copyright 1992 by Torsten Jurgeleit
- *
- * Name .....: window.c
- * Created ..: Friday 02-Oct-92 10:25:09
- * Revision .: 1
- *
- * Date Author Comment
- * ========= ==================== ====================
- * 02-Oct-92 Michael Bjerking New realese, better Screen/Window editor
- * 02-Oct-92 Michael Bjerking Created this file!
- *
- * $Revision Header ********************************************************/
-
- /* Includes */
-
- #include "includes.h"
- #include "defines.h"
- #include "imports.h"
- #include "protos.h"
-
- /* Data for fonts */
-
- STATIC struct TextAttr window_text_attr[]=
- {
- {
- (STRPTR) "topaz.font", 8, FS_NORMAL, FPF_ROMFONT
- }
- };
- /* Defines and data for gadgets */
-
- #define WINDOW_GADGET_TOPEDGE 0
- #define WINDOW_GADGET_LEFTEDGE 1
- #define WINDOW_GADGET_WIDTH 2
- #define WINDOW_GADGET_HEIGHT 3
- #define WINDOW_GADGET_DETAILPEN 4
- #define WINDOW_GADGET_BLOCKPEN 5
- #define WINDOW_GADGET_IDCMPFLAGS 6
- #define WINDOW_GADGET_FLAGS 7
- #define WINDOW_GADGET_TITLE 8
- #define WINDOW_GADGET_MINWIDTH 9
- #define WINDOW_GADGET_MINHEIGHT 10
- #define WINDOW_GADGET_MAXWIDTH 11
- #define WINDOW_GADGET_MAXHEIGHT 12
- #define WINDOW_GADGET_OK 13
- #define WINDOW_GADGET_CANCEL 14
-
- IMPORT struct List window_gadget7_list;
- STATIC struct Node window_gadget7_node[]=
- {
- {
- &window_gadget7_node[1], (struct Node *) & window_gadget7_list.lh_Head, 0, 0,
- " GADGETDOWN"
- },
- {
- &window_gadget7_node[2], &window_gadget7_node[0], 0, 0,
- " GADGETUP"
- },
- {
- &window_gadget7_node[3], &window_gadget7_node[1], 0, 0,
- " CLOSEWINDOW"
- },
- {
- &window_gadget7_node[4], &window_gadget7_node[2], 0, 0,
- " REQSET"
- },
- {
- &window_gadget7_node[5], &window_gadget7_node[3], 0, 0,
- " REQCLEAR"
- },
- {
- &window_gadget7_node[6], &window_gadget7_node[4], 0, 0,
- " REQVERIFY"
- },
- {
- &window_gadget7_node[7], &window_gadget7_node[5], 0, 0,
- " MENUPICK"
- },
- {
- &window_gadget7_node[8], &window_gadget7_node[6], 0, 0,
- " MENUVERIFY"
- },
- {
- &window_gadget7_node[9], &window_gadget7_node[7], 0, 0,
- " MOUSEBUTTONS"
- },
- {
- &window_gadget7_node[10], &window_gadget7_node[8], 0, 0,
- " MOUSEMOVE"
- },
- {
- &window_gadget7_node[11], &window_gadget7_node[9], 0, 0,
- " DELTAMOVE"
- },
- {
- &window_gadget7_node[12], &window_gadget7_node[10], 0, 0,
- " NEWSIZE"
- },
- {
- &window_gadget7_node[13], &window_gadget7_node[11], 0, 0,
- " SIZEVERIFY"
- },
- {
- &window_gadget7_node[14], &window_gadget7_node[12], 0, 0,
- " REFRESHWINDOW"
- },
- {
- &window_gadget7_node[15], &window_gadget7_node[13], 0, 0,
- " ACTIVEWINDOW"
- },
- {
- &window_gadget7_node[16], &window_gadget7_node[14], 0, 0,
- " INACTIVEWINDOW"
- },
- {
- &window_gadget7_node[17], &window_gadget7_node[15], 0, 0,
- " RAWKEY"
- },
- {
- &window_gadget7_node[18], &window_gadget7_node[16], 0, 0,
- " VANILLAKEY"
- },
- {
- &window_gadget7_node[19], &window_gadget7_node[17], 0, 0,
- " DISKINSERTED"
- },
- {
- &window_gadget7_node[20], &window_gadget7_node[18], 0, 0,
- " DISKREMOVED"
- },
- {
- &window_gadget7_node[21], &window_gadget7_node[19], 0, 0,
- " NEWPREFS"
- },
- {
- &window_gadget7_node[22], &window_gadget7_node[20], 0, 0,
- " INTUITICKS"
- },
- {
- &window_gadget7_node[23], &window_gadget7_node[21], 0, 0,
- " WBENCHMESSAGE"
- },
- {
- (struct Node *) & window_gadget7_list.lh_Tail, &window_gadget7_node[22], 0, 0,
- " GADGET_IDCMP_ALL"
- }
- };
- /* STATIC */ struct List window_gadget7_list =
- {
- &window_gadget7_node[0], NULL,
- &window_gadget7_node[22], 0, 0
- };
- IMPORT struct List window_gadget8_list;
- STATIC struct Node window_gadget8_node[]=
- {
- {
- &window_gadget8_node[1], (struct Node *) & window_gadget8_list.lh_Head, 0, 0,
- " WINDOWCLOSE"
- },
- {
- &window_gadget8_node[2], &window_gadget8_node[0], 0, 0,
- " WINDOWDRAG"
- },
- {
- &window_gadget8_node[3], &window_gadget8_node[1], 0, 0,
- " WINDOWDEPTH"
- },
- {
- &window_gadget8_node[4], &window_gadget8_node[2], 0, 0,
- " WINDOWSIZING"
- },
- {
- &window_gadget8_node[5], &window_gadget8_node[3], 0, 0,
- " BACKDROP"
- },
- {
- &window_gadget8_node[6], &window_gadget8_node[4], 0, 0,
- " BORDERLESS"
- },
- {
- &window_gadget8_node[7], &window_gadget8_node[5], 0, 0,
- " GIMMEZEROZERO"
- },
- {
- &window_gadget8_node[8], &window_gadget8_node[6], 0, 0,
- " SUPER_BITMAP"
- },
- {
- &window_gadget8_node[9], &window_gadget8_node[7], 0, 0,
- " SIMPLE_REFRESH"
- },
- {
- &window_gadget8_node[10], &window_gadget8_node[8], 0, 0,
- "+SMART_REFRESH"
- },
- {
- &window_gadget8_node[11], &window_gadget8_node[9], 0, 0,
- " REPORTMOUSE"
- },
- {
- &window_gadget8_node[12], &window_gadget8_node[10], 0, 0,
- " NOCAREREFRESH"
- },
- {
- &window_gadget8_node[13], &window_gadget8_node[11], 0, 0,
- " RMBTRAP"
- },
- {
- &window_gadget8_node[14], &window_gadget8_node[12], 0, 0,
- " ACTIVATE"
- },
- {
- &window_gadget8_node[15], &window_gadget8_node[13], 0, 0,
- " FILL_BACKGROUND"
- },
- {
- &window_gadget8_node[16], &window_gadget8_node[14], 0, 0,
- " USE_RENDER_COLORS"
- },
- {
- (struct Node *) & window_gadget8_list.lh_Tail, &window_gadget8_node[15], 0, 0,
- " AVAIL_FONTS"
- }
- };
- /* STATIC */ struct List window_gadget8_list =
- {
- &window_gadget8_node[0], NULL,
- &window_gadget8_node[16], 0, 0
- };
- STATIC struct GadgetData window_gadget_data[]=
- {
- {
- 5, 80, 90, 26 - 10, 61, 14,
- "_TopEdge ", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 5, 80, 90, 11 - 10, 61, 14,
- "_LeftEdge ", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 5, 80, 90, 41 - 10, 61, 14,
- "_Width ", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 5, 80, 90, 56 - 10, 61, 14,
- "_Heigth ", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 5, 80, 90, 71 - 10, 61, 14,
- "_DetailPen", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 5, 80, 90, 86 - 10, 61, 14,
- "_BlockPen ", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 10, 256, 160, 25 - 10, 150, 43,
- "IDCMP Flags", &window_text_attr[0],
- {0, 0, &window_gadget7_list}
- },
- {
- 10, 256, 320, 25 - 10, 190, 36,
- "Window Flags", &window_text_attr[0],
- {0, 0, &window_gadget8_list}
- },
- {
- 4, 80, 58, 104 - 10, 117, 14,
- "T_itle", &window_text_attr[0],
- {MAX_PROJECT_NAME_LEN - 1, 0, "String"}
- },
- {
- 5, 65, 260, 65 - 10, 61, 14,
- "MinWidth ", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 5, 65, 260, 80 - 10, 61, 14,
- "MinHeight", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 5, 65, 420, 65 - 10, 61, 14,
- "MaxWidth ", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 5, 65, 420, 80 - 10, 61, 14,
- "MaxHeight ", &window_text_attr[0],
- {10, 0, (VOID *) 123}
- },
- {
- 1, 16, 220, 100 - 10, 116, 20,
- "_Ok", &window_text_attr[0],
- {0, 0, (VOID *) 0}
- },
- {
- 1, 16, 347, 100 - 10, 116, 20,
- "_Cancel", &window_text_attr[0],
- {0, 0, (VOID *) 0}
- },
- {
- INTUISUP_DATA_END
- }
- };
-
- VOID
- change_flags_list(APTR gl, USHORT flags, ULONG IDCMPflags, ULONG WINflags)
- {
-
- /* IDCMP Flags */
-
- if (IDCMPflags & GADGETDOWN)
- strcpy(window_gadget7_node[0].ln_Name, "*GADGETDOWN");
- else
- strcpy(window_gadget7_node[0].ln_Name, " GADGETDOWN");
-
- if (IDCMPflags & GADGETUP)
- strcpy(window_gadget7_node[1].ln_Name, "*GADGETUP");
- else
- strcpy(window_gadget7_node[1].ln_Name, " GADGETUP");
-
- if (IDCMPflags & CLOSEWINDOW)
- strcpy(window_gadget7_node[2].ln_Name, "*CLOSEWINDOW");
- else
- strcpy(window_gadget7_node[2].ln_Name, " CLOSEWINDOW");
-
- if (IDCMPflags & REQSET)
- strcpy(window_gadget7_node[3].ln_Name, "*REQSET");
- else
- strcpy(window_gadget7_node[3].ln_Name, " REQSET");
-
- if (IDCMPflags & REQCLEAR)
- strcpy(window_gadget7_node[4].ln_Name, "*REQCLEAR");
- else
- strcpy(window_gadget7_node[4].ln_Name, " REQCLEAR");
-
- if (IDCMPflags & REQVERIFY)
- strcpy(window_gadget7_node[5].ln_Name, "*REQVERIFY");
- else
- strcpy(window_gadget7_node[5].ln_Name, " REQVERIFY");
-
- if (IDCMPflags & MENUPICK)
- strcpy(window_gadget7_node[6].ln_Name, "*MENUPICK");
- else
- strcpy(window_gadget7_node[6].ln_Name, " MENUPICK");
-
- if (IDCMPflags & MENUVERIFY)
- strcpy(window_gadget7_node[7].ln_Name, "*MENUVERIFY");
- else
- strcpy(window_gadget7_node[7].ln_Name, " MENUVERIFY");
-
- if (IDCMPflags & MOUSEBUTTONS)
- strcpy(window_gadget7_node[8].ln_Name, "*MOUSEBUTTONS");
- else
- strcpy(window_gadget7_node[8].ln_Name, " MOUSEBUTTONS");
-
- if (IDCMPflags & MOUSEMOVE)
- strcpy(window_gadget7_node[9].ln_Name, "*MOUSEMOVE");
- else
- strcpy(window_gadget7_node[9].ln_Name, " MOUSEMOVE");
-
- if (IDCMPflags & DELTAMOVE)
- strcpy(window_gadget7_node[10].ln_Name, "*DELTAMOVE");
- else
- strcpy(window_gadget7_node[10].ln_Name, " DELTAMOVE");
-
- if (IDCMPflags & NEWSIZE)
- strcpy(window_gadget7_node[11].ln_Name, "*NEWSIZE");
- else
- strcpy(window_gadget7_node[11].ln_Name, " NEWSIZE");
-
- if (IDCMPflags & SIZEVERIFY)
- strcpy(window_gadget7_node[12].ln_Name, "*SIZEVERIFY");
- else
- strcpy(window_gadget7_node[12].ln_Name, " SIZEVERIFY");
-
- if (IDCMPflags & REFRESHWINDOW)
- strcpy(window_gadget7_node[13].ln_Name, "*REFRESHWINDOW");
- else
- strcpy(window_gadget7_node[13].ln_Name, " REFRESHWINDOW");
-
- if (IDCMPflags & ACTIVEWINDOW)
- strcpy(window_gadget7_node[14].ln_Name, "*ACTIVEWINDOW");
- else
- strcpy(window_gadget7_node[14].ln_Name, " ACTIVEWINDOW");
-
- if (IDCMPflags & INACTIVEWINDOW)
- strcpy(window_gadget7_node[15].ln_Name, "*INACTIVEWINDOW");
- else
- strcpy(window_gadget7_node[15].ln_Name, " INACTIVEWINDOW");
-
- if (IDCMPflags & RAWKEY)
- strcpy(window_gadget7_node[16].ln_Name, "*RAWKEY");
- else
- strcpy(window_gadget7_node[16].ln_Name, " RAWKEY");
-
- if (IDCMPflags & VANILLAKEY)
- strcpy(window_gadget7_node[17].ln_Name, "*VANILLAKEY");
- else
- strcpy(window_gadget7_node[17].ln_Name, " VANILLAKEY");
-
- if (IDCMPflags & DISKINSERTED)
- strcpy(window_gadget7_node[18].ln_Name, "*DISKINSERTED");
- else
- strcpy(window_gadget7_node[18].ln_Name, " DISKINSERTED");
-
- if (IDCMPflags & DISKREMOVED)
- strcpy(window_gadget7_node[19].ln_Name, "*DISKREMOVED");
- else
- strcpy(window_gadget7_node[19].ln_Name, " DISKREMOVED");
-
- if (IDCMPflags & NEWPREFS)
- strcpy(window_gadget7_node[20].ln_Name, "*NEWPREFS");
- else
- strcpy(window_gadget7_node[20].ln_Name, " NEWPREFS");
-
- if (IDCMPflags & INTUITICKS)
- strcpy(window_gadget7_node[21].ln_Name, "*INTUITICKS");
- else
- strcpy(window_gadget7_node[21].ln_Name, " INTUITICKS");
-
- if (IDCMPflags & WBENCHMESSAGE)
- strcpy(window_gadget7_node[22].ln_Name, "*WBENCHMESSAGE");
- else
- strcpy(window_gadget7_node[22].ln_Name, " WBENCHMESSAGE");
-
- if ((IDCMPflags & GADGET_IDCMP_FLAGS_ALL) == GADGET_IDCMP_FLAGS_ALL)
- strcpy(window_gadget7_node[23].ln_Name, "*GADGET_IDCMP_ALL");
- else
- strcpy(window_gadget7_node[23].ln_Name, " GADGET_IDCMP_ALL");
-
-
- /* WINDOW Flags */
-
- if (WINflags & WINDOWCLOSE)
- strcpy(window_gadget8_node[0].ln_Name, "*WINDOWCLOSE");
- else
- strcpy(window_gadget8_node[0].ln_Name, " WINDOWCLOSE");
-
- if (WINflags & WINDOWDRAG)
- strcpy(window_gadget8_node[1].ln_Name, "*WINDOWDRAG");
- else
- strcpy(window_gadget8_node[1].ln_Name, " WINDOWDRAG");
-
- if (WINflags & WINDOWDEPTH)
- strcpy(window_gadget8_node[2].ln_Name, "*WINDOWDEPTH");
- else
- strcpy(window_gadget8_node[2].ln_Name, " WINDOWDEPTH");
-
- if (WINflags & WINDOWSIZING)
- {
- strcpy(window_gadget8_node[3].ln_Name, "*WINDOWSIZING");
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_MINWIDTH,
- GADGET_DATA_FLAG_DISABLED, 0L,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_MAXWIDTH,
- GADGET_DATA_FLAG_DISABLED, 0L,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_MINHEIGHT,
- GADGET_DATA_FLAG_DISABLED, 0L,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_MAXHEIGHT,
- GADGET_DATA_FLAG_DISABLED, 0L,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
- }
- else
- {
- strcpy(window_gadget8_node[3].ln_Name, " WINDOWSIZING");
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_MINWIDTH,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_MAXWIDTH,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_MINHEIGHT,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_MAXHEIGHT,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
- }
-
- if (WINflags & BACKDROP)
- strcpy(window_gadget8_node[4].ln_Name, "*BACKDROP");
- else
- strcpy(window_gadget8_node[4].ln_Name, " BACKDROP");
-
- if (WINflags & BORDERLESS)
- strcpy(window_gadget8_node[5].ln_Name, "*BORDERLESS");
- else
- strcpy(window_gadget8_node[5].ln_Name, " BORDERLESS");
-
- if (WINflags & GIMMEZEROZERO)
- strcpy(window_gadget8_node[6].ln_Name, "*GIMMEZEROZERO");
- else
- strcpy(window_gadget8_node[6].ln_Name, " GIMMEZEROZERO");
-
- if (WINflags & SUPER_BITMAP)
- strcpy(window_gadget8_node[7].ln_Name, "*SUPER_BITMAP");
- else
- strcpy(window_gadget8_node[7].ln_Name, " SUPER_BITMAP");
-
- if (WINflags & SIMPLE_REFRESH)
- strcpy(window_gadget8_node[8].ln_Name, "*SIMPLE_REFRESH");
- else
- strcpy(window_gadget8_node[8].ln_Name, " SIMPLE_REFRESH");
-
- /*
- if(WINflags & SMART_REFRESH)
- strcpy(window_gadget8_node[9].ln_Name,"*SMART_REFRESH");
- else
- strcpy(window_gadget8_node[9].ln_Name," SMART_REFRESH");
- */
-
- if (flags & TEMPLATE_LIST_FLAG_REPORTMOUSE)
- strcpy(window_gadget8_node[10].ln_Name, "*REPORTMOUSE");
- else
- strcpy(window_gadget8_node[10].ln_Name, " REPORTMOUSE");
-
- if (WINflags & NOCAREREFRESH)
- strcpy(window_gadget8_node[11].ln_Name, "*NOCAREREFRESH");
- else
- strcpy(window_gadget8_node[11].ln_Name, " NOCAREREFRESH");
-
- if (WINflags & RMBTRAP)
- strcpy(window_gadget8_node[12].ln_Name, "*RMBTRAP");
- else
- strcpy(window_gadget8_node[12].ln_Name, " RMBTRAP");
-
- if (WINflags & ACTIVATE)
- strcpy(window_gadget8_node[13].ln_Name, "*ACTIVATE");
- else
- strcpy(window_gadget8_node[13].ln_Name, " ACTIVATE");
-
- if (flags & TEMPLATE_LIST_FLAG_BACK_FILL)
- strcpy(window_gadget8_node[14].ln_Name, "*FILL_BACKGROUND");
- else
- strcpy(window_gadget8_node[14].ln_Name, " FILL_BACKGROUND");
-
- if (flags & TEMPLATE_LIST_FLAG_RENDER_COLORS)
- {
- strcpy(window_gadget8_node[15].ln_Name, "*USE_RENDER_COLORS");
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_DETAILPEN,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 0);
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_BLOCKPEN,
- GADGET_DATA_FLAG_DISABLED, GADGET_DATA_FLAG_DISABLED,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) 1);
- }
- else
- {
- strcpy(window_gadget8_node[15].ln_Name, " USE_RENDER_COLORS");
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_DETAILPEN,
- GADGET_DATA_FLAG_DISABLED, 0L,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
- ISetGadgetAttributes(gl,
- WINDOW_GADGET_BLOCKPEN,
- GADGET_DATA_FLAG_DISABLED, 0L,
- USE_CURRENT_VALUE, USE_CURRENT_VALUE, (VOID *) USE_CURRENT_VALUE);
- }
-
- if (flags & TEMPLATE_LIST_FLAG_AVAIL_FONTS)
- strcpy(window_gadget8_node[16].ln_Name, "*AVAIL_FONTS");
- else
- strcpy(window_gadget8_node[16].ln_Name, " AVAIL_FONTS");
- }
-
- SHORT
- change_project_window(VOID)
- {
- struct TemplateList *tl = &template_list;
- struct GadgetData *gd = &window_gadget_data[0];
- APTR gl;
- USHORT flags = tl->tl_Flags;
- ULONG IDCMPflags = tl->tl_IDCMPFlags, WINflags = pwin->Flags;
- SHORT status;
-
- /* Init gadgets with current values */
- (gd + WINDOW_GADGET_LEFTEDGE)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->LeftEdge;
- (gd + WINDOW_GADGET_TOPEDGE)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->TopEdge;
- (gd + WINDOW_GADGET_WIDTH)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->Width;
- (gd + WINDOW_GADGET_HEIGHT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->Height;
- (gd + WINDOW_GADGET_DETAILPEN)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->DetailPen;
- (gd + WINDOW_GADGET_BLOCKPEN)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->BlockPen;
- (gd + WINDOW_GADGET_TITLE)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) tl->tl_ProjectName;
-
- (gd + WINDOW_GADGET_MINWIDTH)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->MinWidth;
- (gd + WINDOW_GADGET_MINHEIGHT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->MinHeight;
- (gd + WINDOW_GADGET_MAXWIDTH)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->MaxWidth;
- (gd + WINDOW_GADGET_MAXHEIGHT)->gd_SpecialData.gd_InputData.gd_InputDefault = (BYTE *) pwin->MaxHeight;
-
-
- /* Print title and display gadgets */
- IClearWindow(eri, ewin, 0, 0, EDITOR_WINDOW_WIDTH, EDITOR_WINDOW_HEIGHT, 0);
-
- if (!(gl = ICreateGadgets(eri, &window_gadget_data[0], 0, 0, NULL)))
- status = EDITOR_ERROR_OUT_OF_MEM;
- else
- {
- /* Init IDCMPFlag and Flag list */
- change_flags_list(gl, flags, IDCMPflags, WINflags);
-
- IDisplayGadgets(ewin, gl);
- status = change_project_window_action(gl);
- IRemoveGadgets(gl);
- IFreeGadgets(gl);
- }
-
- return (status);
- }
-
- /* Perform action for change project window settings */
-
- STATIC SHORT
- change_project_window_action(APTR gl)
- {
- struct TemplateList *tl = &template_list;
- struct NewWindow *nwin = &project_new_window;
- struct MsgPort *up = ewin->UserPort;
- SHORT left_edge = pwin->LeftEdge, top_edge = pwin->TopEdge, width = pwin->Width, height = pwin->Height, max_width = wb_screen.Width, max_height = wb_screen.Height, MinWidth = pwin->MinWidth, MinHeight = pwin->MinHeight, MaxWidth = pwin->MaxWidth,
- MaxHeight = pwin->MaxHeight;
- UBYTE dpen = pwin->DetailPen, bpen = pwin->BlockPen;
- BYTE title[MAX_PROJECT_NAME_LEN];
- USHORT flags = tl->tl_Flags;
- ULONG WINflags = pwin->Flags, IDCMPflags = tl->tl_IDCMPFlags;
- BOOL keepon = TRUE;
- SHORT status = EDITOR_STATUS_NORMAL;
-
- sprintf(title, "%s", tl->tl_ProjectName);
-
- do
- {
- struct IntuiMessage *msg;
-
- WaitPort(up);
- while (msg = IGetMsg(up))
- {
- ULONG Class = msg->Class;
- USHORT Code = msg->Code;
- LONG IAddress = (LONG)msg->IAddress;
-
- switch (Class)
- {
- case CLOSEWINDOW:
- status = EDITOR_STATUS_QUIT;
- keepon = FALSE;
- break;
-
- case ISUP_ID:
- switch (Code)
- {
- case WINDOW_GADGET_TOPEDGE:
- if (((SHORT) IAddress + height) > max_height)
- {
- DisplayBeep(NULL);
- ISetGadgetAttributes(gl, WINDOW_GADGET_TOPEDGE, 0L, 0L, USE_CURRENT_VALUE, USE_CURRENT_VALUE, (BYTE *) top_edge);
- }
- else
- {
- top_edge = (SHORT) IAddress;
- flags |= TEMPLATE_LIST_FLAG_CHANGED;
- }
- break;
-
- case WINDOW_GADGET_LEFTEDGE:
- if (((SHORT) IAddress + width) > max_width)
- {
- DisplayBeep(NULL);
- ISetGadgetAttributes(gl, WINDOW_GADGET_LEFTEDGE, 0L, 0L, USE_CURRENT_VALUE, USE_CURRENT_VALUE, (BYTE *) left_edge);
- }
- else
- {
- left_edge = (SHORT) IAddress;
- flags |= TEMPLATE_LIST_FLAG_CHANGED;
- }
- break;
-
- case WINDOW_GADGET_WIDTH:
- if (((SHORT) IAddress + left_edge) > max_width)
- {
- DisplayBeep(NULL);
- ISetGadgetAttributes(gl, WINDOW_GADGET_WIDTH, 0L, 0L, USE_CURRENT_VALUE, USE_CURRENT_VALUE, (BYTE *) width);
- }
- else
- {
- width = (SHORT) IAddress;
- flags |= TEMPLATE_LIST_FLAG_CHANGED;
- }
- break;
-
- case WINDOW_GADGET_HEIGHT:
- if (((SHORT) IAddress + top_edge) > max_height)
- {
- DisplayBeep(NULL);
- ISetGadgetAttributes(gl, WINDOW_GADGET_HEIGHT, 0L, 0L, USE_CURRENT_VALUE, USE_CURRENT_VALUE, (BYTE *) height);
- }
- else
- {
- height = (SHORT) IAddress;
- flags |= TEMPLATE_LIST_FLAG_CHANGED;
- }
- break;
-
- case WINDOW_GADGET_DETAILPEN:
- dpen = (UBYTE) IAddress;
- break;
-
- case WINDOW_GADGET_BLOCKPEN:
- printf("WINDOW_GADGET_BLOCKPEN: %ld\n", IAddress);
- bpen = (UBYTE) IAddress;
- break;
-
- case WINDOW_GADGET_IDCMPFLAGS:
- switch ((ULONG) IAddress)
- {
- case 0:
- if (IDCMPflags & GADGETDOWN)
- IDCMPflags &= ~GADGETDOWN;
- else
- IDCMPflags |= GADGETDOWN;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 1:
- if (IDCMPflags & GADGETUP)
- IDCMPflags &= ~GADGETUP;
- else
- IDCMPflags |= GADGETUP;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 2:
- if (IDCMPflags & CLOSEWINDOW)
- {
- IDCMPflags &= ~CLOSEWINDOW;
- WINflags &= ~WINDOWCLOSE;
- }
- else
- {
- IDCMPflags |= CLOSEWINDOW;
- WINflags |= WINDOWCLOSE;
- }
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 3:
- if (IDCMPflags & REQSET)
- IDCMPflags &= ~REQSET;
- else
- IDCMPflags |= REQSET;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 4:
- if (IDCMPflags & REQCLEAR)
- IDCMPflags &= ~REQCLEAR;
- else
- IDCMPflags |= REQCLEAR;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 5:
- if (IDCMPflags & REQVERIFY)
- IDCMPflags &= ~REQVERIFY;
- else
- IDCMPflags |= REQVERIFY;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 6:
- if (IDCMPflags & MENUPICK)
- IDCMPflags &= ~MENUPICK;
- else
- IDCMPflags |= MENUPICK;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 7:
- if (IDCMPflags & MENUVERIFY)
- IDCMPflags &= ~MENUVERIFY;
- else
- IDCMPflags |= MENUVERIFY;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 8:
- if (IDCMPflags & MOUSEBUTTONS)
- IDCMPflags &= ~MOUSEBUTTONS;
- else
- IDCMPflags |= MOUSEBUTTONS;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 9:
- if (IDCMPflags & MOUSEMOVE)
- IDCMPflags &= ~MOUSEMOVE;
- else
- IDCMPflags |= MOUSEMOVE;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 10:
- if (IDCMPflags & DELTAMOVE)
- IDCMPflags &= ~DELTAMOVE;
- else
- IDCMPflags |= DELTAMOVE;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 11:
- if (IDCMPflags & NEWSIZE)
- IDCMPflags &= ~NEWSIZE;
- else
- IDCMPflags |= NEWSIZE;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 12:
- if (IDCMPflags & SIZEVERIFY)
- IDCMPflags &= ~SIZEVERIFY;
- else
- IDCMPflags |= SIZEVERIFY;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 13:
- if (IDCMPflags & REFRESHWINDOW)
- IDCMPflags &= ~REFRESHWINDOW;
- else
- IDCMPflags |= REFRESHWINDOW;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 14:
- if (IDCMPflags & ACTIVEWINDOW)
- IDCMPflags &= ~ACTIVEWINDOW;
- else
- IDCMPflags |= ACTIVEWINDOW;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 15:
- if (IDCMPflags & INACTIVEWINDOW)
- IDCMPflags &= ~INACTIVEWINDOW;
- else
- IDCMPflags |= INACTIVEWINDOW;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 16:
- if (IDCMPflags & RAWKEY)
- IDCMPflags &= ~RAWKEY;
- else
- IDCMPflags |= RAWKEY;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 17:
- if (IDCMPflags & VANILLAKEY)
- IDCMPflags &= ~VANILLAKEY;
- else
- IDCMPflags |= VANILLAKEY;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 18:
- if (IDCMPflags & DISKINSERTED)
- IDCMPflags &= ~DISKINSERTED;
- else
- IDCMPflags |= DISKINSERTED;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 19:
- if (IDCMPflags & DISKREMOVED)
- IDCMPflags &= ~DISKREMOVED;
- else
- IDCMPflags |= DISKREMOVED;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 20:
- if (IDCMPflags & NEWPREFS)
- IDCMPflags &= ~NEWPREFS;
- else
- IDCMPflags |= NEWPREFS;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 21:
- if (IDCMPflags & INTUITICKS)
- IDCMPflags &= ~INTUITICKS;
- else
- IDCMPflags |= INTUITICKS;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 22:
- if (IDCMPflags & WBENCHMESSAGE)
- IDCMPflags &= ~WBENCHMESSAGE;
- else
- IDCMPflags |= WBENCHMESSAGE;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 23:
- if ((IDCMPflags & GADGET_IDCMP_FLAGS_ALL) == GADGET_IDCMP_FLAGS_ALL)
- IDCMPflags &= ~GADGET_IDCMP_FLAGS_ALL;
- else
- IDCMPflags |= GADGET_IDCMP_FLAGS_ALL;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
- }
- IRefreshGadgets(gl);
- break;
-
- case WINDOW_GADGET_FLAGS:
- switch ((ULONG) IAddress)
- {
- case 0:
- if (WINflags & WINDOWCLOSE)
- {
- WINflags &= ~WINDOWCLOSE;
- IDCMPflags &= ~CLOSEWINDOW;
- }
- else
- {
- WINflags |= WINDOWCLOSE;
- IDCMPflags |= CLOSEWINDOW;
- }
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 1:
- if (WINflags & WINDOWDRAG)
- WINflags &= ~WINDOWDRAG;
- else
- WINflags |= WINDOWDRAG;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 2:
- if (WINflags & WINDOWDEPTH)
- WINflags &= ~WINDOWDEPTH;
- else
- WINflags |= WINDOWDEPTH;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 3:
- if (WINflags & WINDOWSIZING)
- {
- WINflags &= ~WINDOWSIZING;
- MinWidth = 0;
- MinHeight = 0;
- MaxWidth = 0;
- MaxHeight = 0;
- }
- else
- WINflags |= WINDOWSIZING;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 4:
- if (WINflags & BACKDROP)
- WINflags &= ~BACKDROP;
- else
- WINflags |= BACKDROP;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 5:
- if (WINflags & BORDERLESS)
- WINflags &= ~BORDERLESS;
- else
- WINflags |= BORDERLESS;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 6:
- if (WINflags & GIMMEZEROZERO)
- WINflags &= ~GIMMEZEROZERO;
- else
- WINflags |= GIMMEZEROZERO;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 7:
- if (WINflags & SUPER_BITMAP)
- WINflags &= ~SUPER_BITMAP;
- else
- WINflags |= SUPER_BITMAP;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 8:
- if (WINflags & SIMPLE_REFRESH)
- WINflags &= ~SIMPLE_REFRESH;
- else
- WINflags |= SIMPLE_REFRESH;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 9:
- /*
- if(WINflags & SMART_REFRESH)
- WINflags &= ~SMART_REFRESH;
- else
- WINflags |= SMART_REFRESH;
- change_flags_list(gl,flags,IDCMPflags,WINflags);
- */
- break;
-
- case 10:
- if (flags & TEMPLATE_LIST_FLAG_REPORTMOUSE)
- flags &= ~TEMPLATE_LIST_FLAG_REPORTMOUSE;
- else
- flags |= TEMPLATE_LIST_FLAG_REPORTMOUSE;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 11:
- if (WINflags & NOCAREREFRESH)
- WINflags &= ~NOCAREREFRESH;
- else
- WINflags |= NOCAREREFRESH;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 12:
- if (WINflags & RMBTRAP)
- WINflags &= ~RMBTRAP;
- else
- WINflags |= RMBTRAP;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 13:
- if (WINflags & ACTIVATE)
- WINflags &= ~ACTIVATE;
- else
- WINflags |= ACTIVATE;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 14:
- if (flags & TEMPLATE_LIST_FLAG_BACK_FILL)
- flags &= ~TEMPLATE_LIST_FLAG_BACK_FILL;
- else
- flags |= TEMPLATE_LIST_FLAG_BACK_FILL;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 15:
- if (flags & TEMPLATE_LIST_FLAG_RENDER_COLORS)
- flags &= ~TEMPLATE_LIST_FLAG_RENDER_COLORS;
- else
- {
- flags |= TEMPLATE_LIST_FLAG_RENDER_COLORS;
- dpen = 0;
- bpen = 1;
- }
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
-
- case 16:
- if (flags & TEMPLATE_LIST_FLAG_AVAIL_FONTS)
- flags &= ~TEMPLATE_LIST_FLAG_AVAIL_FONTS;
- else
- flags |= TEMPLATE_LIST_FLAG_AVAIL_FONTS;
- change_flags_list(gl, flags, IDCMPflags, WINflags);
- break;
- }
- IRefreshGadgets(gl);
- break;
-
- case WINDOW_GADGET_TITLE:
- sprintf(title, "%s", IAddress);
- break;
-
- case WINDOW_GADGET_MINWIDTH:
- if ((SHORT) IAddress < 0)
- MinWidth = 1;
- else
- MinWidth = (SHORT) IAddress;
- break;
-
- case WINDOW_GADGET_MINHEIGHT:
- if ((SHORT) IAddress < 0)
- MinHeight = 1;
- else
- MinHeight = (SHORT) IAddress;
- break;
-
- case WINDOW_GADGET_MAXWIDTH:
- if ((SHORT) IAddress < 0)
- MaxWidth = 65535;
- else
- MaxWidth = (SHORT) IAddress;
- break;
-
- case WINDOW_GADGET_MAXHEIGHT:
- if ((SHORT) IAddress < 0)
- MaxHeight = 65535;
- else
- MaxHeight = (SHORT) IAddress;
- break;
-
- case WINDOW_GADGET_OK:
- /* Change project window */
- nwin->LeftEdge = left_edge;
- nwin->TopEdge = top_edge;
- nwin->Width = width;
- nwin->Height = height;
- nwin->Flags = WINflags;
- nwin->DetailPen = dpen;
- nwin->BlockPen = bpen;
- nwin->MinWidth = MinWidth;
- nwin->MinHeight = MinHeight;
- nwin->MaxWidth = MaxWidth;
- nwin->MaxHeight = MaxHeight;
- strcpy(tl->tl_ProjectWinName, title);
- tl->tl_IDCMPFlags = IDCMPflags;
- tl->tl_Flags = flags;
- if ((status = new_project_window(tl, flags)) == EDITOR_STATUS_NORMAL)
- refresh_all_templates();
-
- keepon = FALSE;
- break;
-
- case WINDOW_GADGET_CANCEL:
- keepon = FALSE;
- break;
-
- }
- }
-
- IReplyMsg(msg);
- }
- }
- while (keepon == TRUE);
-
- return status;
- }
-